Ersetzen Sie Cylinder(...) durch extrude(Circle(...), h) – die Tests müssen danach grün bleiben.
def make_round_cell(r_outer=9.0, h_cell=65.0, r_terminal=2.5, h_terminal=1.0):
body = extrude(Plane.XY.offset(-h_cell/2) * Circle(r_outer), h_cell)
terminal = Pos(0, 0, h_cell/2) * extrude(Circle(r_terminal), h_terminal)
return body + terminal
Führen Sie pytest erneut aus – gleiche Tests, andere Implementierung.
Erweitern Sie make_round_cell um eine umlaufende Einschnürung am oberen Rand:
def make_round_cell(r_outer=9.0, h_cell=65.0, r_terminal=2.5, h_terminal=1.0,
crimp_depth=0.5, crimp_height=2.0):
align_bot = (Align.CENTER, Align.CENTER, Align.MIN)
body = Cylinder(r_outer, h_cell)
terminal = Pos(0, 0, h_cell/2) * Cylinder(r_terminal, h_terminal,
align=align_bot)
cell = body + terminal
crimp_z = h_cell/2 - crimp_height
nut = (Pos(0, 0, crimp_z) * Cylinder(r_outer, crimp_height, align=align_bot)
- Pos(0, 0, crimp_z) * Cylinder(r_outer - crimp_depth, crimp_height, align=align_bot))
return cell - nut
Sind die Tests noch grün?